! **** Initial inventory **** Object bijl "strijdbijl" with description "De strijdbijl is vlijmscherp en is zo zwaar dat slechts weinigen hem op kunnen tillen; maar jij kan hem met dodelijke snelheid en precisie hanteren.", name 'bijl' 'strijdbijl' 'wapen', has male; Object harnas "volledige wapenrusting" with description [; if(verhaaltracker.brand == 0) "Een volledige wapenrusting van het hardste staal, uitstekend geolied, biedt optimale bescherming tegen bedreigingen van buitenaf. Het geheel is van achteren met leren gespen vastgesnoerd en kan alleen door anderen worden losgemaakt."; "De hitte van het drakenvuur is zo intens dat zelfs het staal van het harnas smelt en zich in de vorm van withete druppels met moorddadige bedoeling een weg je lichaam in zoekt."; ], name 'harnas' 'wapenrusting' 'volledige' 'wapenuitrusting' 'rusting' 'uitrusting', before [; Disrobe: "Het harnas zit op je rug vastgegespt; het is onmogelijk het zelf los te maken. Nadat je de draak hebt verslagen en bent teruggekeerd kan je schildknaap dat doen."; ], has worn clothing male; Object helm "helm" with description [; if(self has open) "De helm is functioneel, niet protserig, en sluit nauw aan bij de rest van het harnas. Het vizier staat open, wat beter zicht maar slechtere bescherming geeft."; else "De helm is functioneel, niet protserig, en sluit nauw aan bij de rest van het harnas. Het vizier is gesloten, voor maximale bescherming."; ], before [; Open: if(self has open) "Het vizier is al open geklapt."; else {give self open; "Je opent het vizier van de helm.";} return true; Close: if(self hasnt open) "Het vizier is al naar beneden geklapt."; else {give self ~open; "Je sluit het vizier van de helm.";} return true; Disrobe: if(parent(helm) == player) { give helm ~worn; if(parent(bijl) == player) {move helm to parent(player); "Je zet de helm af, en legt hem op de grond. Je voelt je kwetsbaarder.";} else "Je zet de helm af; het geeft je een kwetsbaar gevoel."; } Drop: if(parent(helm) == player) { if(helm has worn) { print "Je zet de helm af, en legt hem op de grond. Je voelt je kwetsbaarder."; } else { print "Je legt de helm op de grond."; } give helm ~worn; move helm to parent(player); ""; } Take: if(parent(bijl) == player && parent(helm) ~= player) {give helm worn; move helm to player; "Je pakt de helm op en zet hem op je hoofd.";} else return false; Wear: if(TestScope(helm,player)) { if(parent(helm) == player) "De helm staat al op je hoofd."; move helm to player; give helm worn; "Je zet de helm op je hoofd."; } ], name 'helm' 'vizier', has male worn clothing open openable; ! **** Location: grot **** Object grot_hal "Het voorportaal van de grot" with description [; if(verhaaltracker.brand == 0) "De kleine hal is door mensen uitgehouwen en met zwart marmer bekleed. Twee bronzen deuren in het zuiden sluiten de uitgang hermetisch af; in het noorden leidt een smalle grot naar de vurige woonstee van de draak. De grond hier is bezaaid met geblakerde botten en schedels, die flikkerende schaduwen zuidwaarts werpen."; "Tussen de vlammen door zie je de zwarte marmeren wanden van de hal, de botten op de vloer, en de twee bronzen deuren die de enige uitgang vormen."; ], name 'voorportaal' 'portaal' 'hal' 'halletje', n_to grot_grot, before [; Go: if(noun == n_to) {Grot_Hal_N();}; Smell: "De doordringende geur van zwavel vult de hele grot."; Listen: "Vanuit het noorden klinkt een onrustig gesnuif."; ], has light transparent; [ Grot_Hal_N; if(verhaaltracker.brand == 0) { print "Je probeert om de menselijke beenderen heen te stappen, maar kan niet voorkomen dat er bij elke stap verschillende breken onder het gewicht van jou en je wapenrusting.^"; return false; } else { "In het wilde weg ren je rond, botten en schedels van voorgangers - die het niet beter vergaan is - onder je voeten verbrijzelend."; } ]; Object grot_deuren "bronzen deuren" grot_hal class Prop, with name 'deuren' 'bronzen' 'brons' 'twee' 'deur', description "Twee bronzen deuren blokkeren de uitgang naar het zuiden. Er is een voorstelling in gegraveerd van een brandende man.", before [; Open: "De deuren zijn vanaf de andere kant vergrendeld, en zelfs jouw kracht kan ze niet openen. De afspraak is dat je klopt wanneer je de draak verslagen hebt."; Close: "De deuren zijn al gesloten."; Lock, Unlock: "De deuren bevatten geen sleutelgat."; Knock: if(verhaaltracker.brand == 0) { "Nog voordat je de draak hebt proberen te doden? Dat zou alleen een lafaard doen."; } else { print "In paniek ren je naar de deuren. De brandende man in het bronzen reli@:ef kijkt je met spottende ogen aan, zijn extatische grijns bij het voelen van de vlammen precies het tegenovergestelde van jouw gepijnigd geschreeuw. Met de stalen handschoen van je rechterhand beuk je zo hard als je kan tegen hem aan; een vervaarlijke, door merg en been snijdende dissonant galmt door de grot."; VraagToets(0,0,0); print "Maar de deuren komen niet in beweging, niemand doet open, en nogmaals - terwijl je voelt hoe de hitte van het vuur het levenssap in je aderen verdampt - sla je uit alle macht op de deur; nogmaals het geluid, alsof Satan de gong slaat in het diepst van de hel - maar de deur blijft onbeweeglijk, je voelt hoe je handen langs het koper naar beneden glijden maar je kan niets doen om te blijven staan en de pijn de hitte duisternis..."; EndSceneOne(); return true; } Attack: <>; ], has ~open openable pluralname; Object grot_man "brandende man" grot_hal class Prop, with name 'brandende' 'man' 'tekening' 'voorstelling' 'gravure', description [; if(verhaaltracker.brand > 0) "In plaats van de pijn die je zou verwachten op het gezicht van een brandende man, straalt de gegraveerde figuur eerder begerigheid uit. Je voelt op je eigen gezicht een zelfde uitdrukking verschijnen."; "In plaats van de pijn die je zou verwachten op het gezicht van een brandende man, straalt de gegraveerde figuur eerder begerigheid uit. Het is alsof het vuur hem voortdrijft naar het object van zijn lust, wat dat dan ook zijn mag."; ], has male; Object grot_hal_vuur "vuur" grot_hal class Prop, with name 'vuur' 'vlammen' 'licht', description "Aan het eind van de grot in het noorden zie je grote vlammen. Je kan hier de hitte al voelen.", before [; Doof: if(verhaaltracker.brand == 0) {"Het is onmogelijk zo'n vuurzee te doven.";} else "Je slaat in paniek met je handen op de vlammen, maar slaagt er niet in ze te doven. Het lijkt alsof ze alleen maar feller en groter worden."; ], has ; Object grot_marmer "marmer" grot_hal class Prop, with name 'marmer' 'zwart' 'platen' 'muren' 'wanden' 'muur' 'plafond' 'wand', description "De muren, de wanden en het plafond van de hal zijn helemaal bedekt met platen zwart marmer. De witte aders die er doorheen lopen vormen een patroon dat voor je ogen gaat draaien wanneer je er te lang naar kijkt.", has ; Object grot_aders "patroon" grot_hal class Prop, with name 'aders' 'patroon' 'lijnen' 'ader', description "Koppig blijf je naar het patroon in het marmer kijken, de lijnen die langzaam beginnen te bewegen, gaan tollen, draaien - je voelt dat je duizelig wordt, en richt je ogen snel weer op de grot waarachter je lot wacht.", has ; Object grot_botten "botten" grot_hal class Prop, with name 'botten' 'bot' 'beenderen' 'been' 'schedels' 'schedel' 'resten' 'skelet' 'skeletten' 'vloer', description "Overal op de grond liggen botten en schedels, veelal zwart van het allesverzengende vuur dat hun eigenaren eens fataal werd.", before [; Take: "Je wordt liever niet herinnerd aan het falen van zij die hier voor jou waren."; ], has pluralname; Object grot_schaduwen "schaduwen" grot_hal class Prop, with name 'schaduwen' 'schaduw' 'flikkerende', description "De schaduwen van de botten nemen op de vloer macabere vormen aan.", has pluralname; Object grot_grot "Een lage doorgang" with description [; if(verhaaltracker.brand == 0) "De grot is laag, en je moet bukken om er doorheen te lopen. Op de vloer ligt een dikke laag as. De vlammen die overal in de grote zaal in het noorden uit spleten in de grond komen zijn haast verblindend fel, en de hitte is enorm. Het zweet breekt je aan alle kanten uit. In het zuiden ligt de betrekkelijke koelte van het halletje."; "Je ziet nauwelijks iets door het vuur. De draak is in het noorden, het halletje ligt in het zuiden."; ], name 'doorgang' 'gang' 'grot', n_to grot_zaal, s_to grot_hal, before [; Go: if(noun == s_to) {Grot_Grot_S();} else if(noun == n_to) {Grot_Grot_N();}; Listen: "Uit de zaal in het noorden lijk je beweging te horen, als van het geschuif van een log dier."; Examine: if(noun == n_obj) "De draak bevindt zich in een gigantische zaal. Over het ontstaan ervan doen allerlei verhalen de ronde, maar niemand weet er het fijne van."; Smell: "De doordringende geur van zwavel vult de hele grot."; Listen: "Vanuit het noorden klinkt een onrustig gesnuif."; ], has light transparent; [ Grot_Grot_S; if(verhaaltracker.brand == 0) { print "Begeleid door het geknars van brekende botten loop je terug de hal in.^"; return false; } else { "Je rent in paniek terug naar de hal, ditmaal zonder te letten op de knoken waarmee de grond bezaait is. Bij elke stap die je zet breken botten onder jouw gewicht en dat van je harnas."; } ]; [ Grot_Grot_N; if(verhaaltracker.brand == 0) { if(parent(bijl) == player) {print "Met de bijl stevig in je handen geklemd, ";} else {print "Ongewapend, ";}; if(parent(helm) == player && helm hasnt open) print "het vizier van je helm naar beneden geklapt - minder eervol, maar verstandig -, "; if(parent(helm) == player && helm has open) print "het vizier van je helm opengeklapt zoals een man van eer betaamt, "; if(parent(helm) ~= player) print "moedig en galant, zonder helm, "; print "treed je de draak tegemoet.^"; return false; } else { "Je rent in paniek rond, weer de zaal van de draak in, het onheil en het vuur tegemoet."; } ]; Object grot_as "dikke laag as" grot_grot class Prop, with description "Een laag keihard aangestampte as bedekt de hele vloer; je laat er nauwelijks voetstappen in achter.", name 'as' 'laag' 'dikke' 'vloer', before [; Take: "Je bukt je helemaal en schraapt met je gepantserde vingers langs de as, maar er komt niet genoeg los om op te pakken."; ], has male; Object grot_fake_draak "draak" grot_grot with name 'draak', description "De draak bevindt zich in de grote hal in het noorden.", before [; Examine: return false; default: "Je zult eerst de grote hal moeten betreden."; ], life [; default: "Je zult eerst de grote hal moeten betreden."; ], has male animate scenery; Object grot_voetstap "voetstappen" grot_grot class Prop, with description "In de uiterst compacte as zijn je voetstappen bijna niet te zien.", name 'voetstap' 'voetstappen' 'voetafdruk' 'voetafdrukken', has pluralname; Object grot_grot_vuur "vuur" grot_grot class Prop, with name 'vuur' 'vlammen' 'licht', description "Metershoge vlammen verlichten de zaal in het noorden.", before [; Doof: if(verhaaltracker.brand == 0) {"Het is onmogelijk zo'n vuurzee te doven.";} else "Je slaat in paniek met je handen op de vlammen, maar slaagt er niet in ze te doven. Het lijkt alsof ze alleen maar feller en groter worden."; ], has ; Object grot_grot_spleet "spleten" grot_grot class Prop, with name 'spleet' 'spleten', description "De vloer van de zaal in het noorden wordt doorkliefd met spleten.", has ; Object grot_zaal "Een ondergrondse zaal" with description [; if(verhaaltracker.brand == 0) "De zaal is tientallen meters hoog, en honderden meters breed en diep. De grond is bedekt met een dikke laag as, behalve waar brede spleten de rots doorklieven. Metershoge vlammen schieten uit deze spleten omhoog. De hitte is bijna ondraaglijk."; "Je kan je ogen nauwelijks open houden, en ziet alleen flitsen van de zaal - vlammen, kloven, de grot in het zuiden, en, steeds dichter bij, het duivelse monster."; ], name 'zaal' 'grote' 'ondergrondse', s_to grot_grot, cant_go [; if(verhaaltracker.brand > 0) { print "Je rent in het wilde weg rond, overmand door paniek. Je ziet nauwelijks waar je heen gaat, alles is vuur, vlammen, rook, flikkerend licht. Je struikelt, valt, springt overeind - de angst geeft je zoveel kracht dat je het harnas nauwelijks voelt. Je rent verder in een willekeurige richting, dan, plotseling, stap je in het niets en val je voorover een kloof in. Wanhopig probeer je iets te grijpen, houvast te krijgen, maar de wanden zijn glad en zonder uitsteeksels, en je valt, dieper en dieper. Rook en zwaveldampen vullen de spleet en benemen je de adem. Je hoest en proest, hapt naar lucht, maar krijgt alleen de giftige dampen binnen. Nog voor je de bodem bereikt hebt verlies je het bewustzijn.^"; EndSceneOne(); return true; }; "De enige uitgang ligt in het zuiden."; ], initial [; if(verhaaltracker.draak == 0) { verhaaltracker.draak = 1; StartDaemon(grot_draak); } ], before [; Smell: "De doordringende geur van zwavel vult de hele grot."; Listen: "De draak snuift woest, en brult dan."; ], has light transparent; Object grot_draak "draak" grot_zaal with description "Dertig meter lang van kop tot staart, felrood gekleurd, met schubben die blinken alsof ze van het hardste metaal zijn; maar het is het vuur in de ogen en de keel van de draak, het vlammenspel achter zijn rijen bleke tanden, dat echt huiveringwekkend is. Het is meer dan een monster dat vuur spuwt; het is het vuur zelf waar je tegenover staat. Strijd leveren met de draak schijnt je toe als het bevechten van het allesverzengende vuur, als het voeren van oorlog tegen een natuurkracht die met onverzettelijk geweld de mensen @'e@'en voor @'e@'en op de knie@:en zal dwingen en nooit overwonnen kan worden.", name 'draak' 'enorme' 'roodgeschubde' 'roodgeschubd' 'duivelse' 'monster' 'rood' 'felrood', counting 0, daemon ! This daemon regulates the movement of the dragon, his attempts to set the player on fire [; ! or eat him, and finally the player's possible death through burning. if(self.counting == 0) {print "^In het midden van de zaal staat de draak, een enorm roodgeschubd monster. Hij draait zijn kop naar je toe, en staart je met twee grote gele ogen aan.^";}; if(self.counting == 1 && verhaaltracker.brand == 0) { if(parent(player) == grot_zaal) { print "^De draak draait zich naar je toe, en stapt met logge passen op je af. Hij opent zijn bek en stoot een kreet uit die de hele grot op zijn grondvesten doet schudden. Even wankel je, maar je weet je evenwicht te hervinden.^"; }; if(parent(player) == grot_grot) { print "^Je rent weg, maar achter je hoor je de donderende voetstappen van de draak, die je achterna komt. Zijn bloedstollende kreet echoot door de onderaardse gewelven.^"; }; }; if(self.counting == 2 && verhaaltracker.brand == 0) { if(parent(player) == grot_zaal) { print "^Een immense straal vuur spuit uit de bek van de draak, langs zijn scherpe tanden, en omringt je volledig. De pijn doet je naar adem happen.^"; verhaaltracker.brand = 1; move draak_vuur to player ; }; if(parent(player) == grot_grot) { print "^De draak staat nu vlak bij de noordelijke uitgang van de grot. Achterin zijn zwarte muil lijkt een vuur te branden dat elk moment feller wordt.^"; }; if(parent(player) == grot_hal) { print "^Zo snel als je kunt ren je over de botten heen, weg van het afzichtelijke monster. Er komt rook uit de grot, en een diep gegrom doet de wanden schudden.^"; }; } if(self.counting == 3 && verhaaltracker.brand == 0) { if(parent(player) == grot_zaal) { print "^Een immense straal vuur spuit uit de bek van de draak, langs zijn scherpe tanden, en omringt je volledig. De pijn doet je naar adem happen.^"; verhaaltracker.brand = 1; move draak_vuur to player ; }; if(parent(player) == grot_grot) { print "^De draak steekt zijn kop in de grot, en blaast een immense straal vuur naar binnen. Voordat je kunt reageren ben je omgeven door de vlammen; je kan een schreeuw van pijn niet onderdrukken wanneer je in brand vliegt.^"; verhaaltracker.brand = 1; move draak_vuur to player ; }; if(parent(player) == grot_hal) { print "^De grot in het noorden verandert in een zee van vlammen, vlammen die elk moment verder de hal in lijken te komen, als de tentakels van een hongerig wezen van vuur en hitte, op zoek naar een prooi.^"; }; }; if(self.counting == 4 && verhaaltracker.brand == 0) { if(parent(player) == grot_grot) { print "^De draak heeft zijn kop in de grot gestoken en blaast een immense straal vuur naar binnen. Voordat je kunt reageren ben je omgeven door de vlammen; je kan een schreeuw van pijn niet onderdrukken wanneer je in brand vliegt.^"; verhaaltracker.brand = 1; move draak_vuur to player ; }; if(parent(player) == grot_hal) { print "^Nogmaals klinkt de kreet van de draak, hoog, onaards, vol woede. Een moment later barst het vuur uit de grot de hal in, tot in de verste hoeken. Er is geen uitweg, en voor je het weet hebben de vlammen je volledig omsloten. De pijn die je voelt wanneer je in brand vliegt doet je naar adem happen.^"; verhaaltracker.brand = 1; move draak_vuur to player ; }; }; if(self.counting > 3 && parent(player) == grot_zaal) { print "^Je kan nauwelijks zien wat er gebeurt, gehuld als je bent in een dodelijke wolk van vlammen, maar wanneer de scherpe tanden van de draak dwars door je wapenrusting heen je lichaam binnendringen wordt je je van je lot bewust. Met een afschuwelijk krakend geluid - mijn harnas? mijn botten?, schiet er door je heen - zet de draak zijn tanden op elkaar. Je mond vult zich met bloed, je hele lichaam schreeuwt in pijn, en de duisternis komt als een zegen...^"; EndSceneOne(); }; if(verhaaltracker.brand == 2) { print "^Je bent omgeven door vlammen, en kan nauwelijks nog iets zien. De hitte in het harnas is ondraaglijk.^"; }; if(verhaaltracker.brand == 3) { print "^De pijn wordt elk moment erger. Je slaat wild om je heen, in de hoop de vlammen zo uit te slaan, maar ze lijken alleen maar groter te worden. Tot je afgrijzen voel je hoe het harnas langzaam begint te smelten.^"; }; if(verhaaltracker.brand == 4) { print "^Het smeltende metaal dringt je huid in, wordt @'e@'en met je vlees. Je ziet niets meer, je hoort niets meer, alleen pijn voel je nog wanneer je op je knie@:en zakt, een laatste kreet uitstoot voordat je stembanden wegbranden, en de geest geeft. Duisternis valt over je heen als een koele deken...^"; EndSceneOne(); }; self.counting++; if(verhaaltracker.brand > 0) verhaaltracker.brand++; ], attack 0, life [; Attack, ThrowAt: if(self.attack > 0 || verhaaltracker.brand > 0) { print "Je verbijt je pijn en rent nogmaals op het ondier af - al moet je er met je eigen leven voor betalen, het monster zal sterven. Tussen de vlammen door zie je de twee grote gele ogen; "; if(parent(bijl) == player) print "je heft je bijl om hem er precies tussen te planten."; if(parent(bijl) ~= player) print "je balt je vuisten en strekt je armen precies zo wijd dat je ze allebei tegelijk kan raken."; print " Maar plotseling beukt de staart van de draak je vanaf je linkerkant omver, de kracht zo groot dat je meters door de zaal vliegt voordat je met je hoofd tegen de wand knalt."; if(helm has worn) print " De helm voorkomt dat je onmiddellijk het bewustzijn verliest, en je ziet de kop van de draak naderen, zijn muil wijd open - nogmaals blaast hij zijn vuur over je heen, en na een korte gil die je zelf niet meer kan horen valt de duisternis als een koele deken over je heen.^"; if(helm hasnt worn) print " Je schedel breekt onmiddellijk, en alles wordt zwart.^"; EndSceneOne(); return true; }; if(self.attack == 0 && verhaaltracker.brand == 0) { if(parent(bijl) == player) print "Met de bijl geheven stap je af op de draak, vastbesloten hem een kopje kleiner te maken. "; if(parent(bijl) ~= player) print "Met alleen je gepantserde handen als wapen stap je op de draak af, vastbesloten hem met een fikse vuistslag te overmeesteren. "; print "Het ondier kijkt je aan met een priemende blik, en opent zijn bek. Decimeters lange tanden staan in twee rijen achter elkaar, en diep in het duister van zijn keelgat lijkt een vuur te branden. Maar je laat je niet intimideren, en blijft met ferme passen op hem aflopen. Dan - zo snel en plotseling dat je niet eens meer kan proberen om weg te duiken - barst het vuur naar buiten, uit de bek van de draak, een straal van tientallen meters die je van top tot teen omhult. De pijn doet je naar adem happen.^"; verhaaltracker.brand = 1; }; self.attack++; return true; ], has male animate scenery; Object grot_spleten "spleten" grot_zaal class Prop, with description "Brede spleten doorkruisen de zaal. De bodem is niet te zien vanwege de vlammen die er overal uit naar boven schieten.", name 'spleet' 'spleten' 'kloof' 'kloven', before [; Enter: if(verhaaltracker.brand > 0) { print "Je kiest de snelste weg naar het einde, en springt in @'e@'en van de diepe spleten. Je valt en valt, door vuur en rook, dieper en dieper, tot de spleet uitkomt in een onderaards gewelf uitgespannen boven een meer van borrelende lava. Even, een fractie van een hartslag, verwonder je je over dit prachtige schouwspel - dan val je in de lava, en je voelt hoe je hele lichaam vuur wordt, hoe je geest en ziel vuur worden, vlammen, hitte, licht... - dan wordt alles duister."; EndSceneOne(); return true; } else { "In de spleten staat alleen de dood je te wachten."; }; ], has pluralname container open enterable; Object grot_zaal_vuur "vuur" grot_zaal class Prop, with name 'vuur' 'vlammen' 'licht', description "Metershoge vlammen schieten overal uit de grond.", before [; Doof: if(verhaaltracker.brand == 0) {"Het is onmogelijk zo'n vuurzee te doven.";} else "Je slaat in paniek met je handen op de vlammen, maar slaagt er niet in ze te doven. Het lijkt alsof ze alleen maar feller en groter worden."; ], has ; Object draak_vuur "verterend vuur" with name 'vlammen' 'vuur' 'verterend', description "Een chaotisch vlammenspel omgeeft je van top tot teen.", before [; Drop: "Vlammen kan je niet laten vallen."; Doof: "Je slaat in paniek met je handen op de vlammen, maar slaagt er niet in ze te doven. Het lijkt alsof ze alleen maar feller en groter worden."; ], has ;